SND12 - siOSTypeInput ÉZÉåÉNÉ^ (98 îN 4 åé 12 ì˙)
Q: êVǵǢ siOSTypeInputSource Ç®ÇÊÇ— siOSTypeInputAvailable ÉZÉåÉNÉ^ÇÕÅAÇ«ÇÃÇÊǧDžégÇ¡ÇΩÇÁÇÊÇ¢ÇÃÇ≈ǵÇÂǧǩÅB
A: siOSTypeInputSource ÉZÉåÉNÉ^ÇÃìÆçÏÇÕ siInputSource ÉZÉåÉNÉ^ÇΔÇøÇÂǧǫìØÇ∂Ç≈Ç∑ÅBSPBGetDeviceInfo ÇΔ SPBSetDeviceInfo Ç≈égǢNjÇ∑ÅBDZÇÍÇégópÇ∑ÇÈÇ…ÇÕÅAëIëÇ∑ÇÈì¸óÕÉ\Å[ÉXÇï\Ç∑ OSType Ç÷ÇÃÉ|ÉCÉìÉ^ÇìnǵǃÇ≠ÇæÇ≥Ç¢ÅBó·Ç¶ÇŒÅAéüÇÃÇÊǧDžǻÇËÇ‹Ç∑ÅB
inputSource = kCDSource;
err = SPBSetDeviceInfo (soundRefNum, siOSTypeInputSource, &inputSource);
Ç‹ÇΩÇÕÅASPBGetDeviceInfo Ç÷ÇÃåƒÇ—èoǵÇÃåãâ ÇéÛÇØéÊÇÈ OSType Ç÷ÇÃÉ|ÉCÉìÉ^ÇìnǵǃÇ≠ÇæÇ≥Ç¢ÅBó·Ç¶ÇŒÅAéüÇÃÇÊǧDžǻÇËÇ‹Ç∑ÅB
OSType inputSource;
err = SPBGetDeviceInfo (soundRefNum, siOSTypeInputSource, &inputSource);
siOSTypeInputAvailable ÉZÉåÉNÉ^ÇÕÅASPBGetDeviceInfo Ç≈égópÇ≥ÇÍÅAåãâ ÇΔǵǃ SoundInfoList
ç\ë¢ëÃÇï‘ǵNjÇ∑ÅBDZÇÍÇ…ÇÕ short ÇΔǪÇÃéüÇ… Handle Ç™ë±Ç´Ç‹Ç∑ÅBSoundInfoList Çí≤Ç◊ǃÅAï‘Ç≥ÇÍÇΩÉnÉìÉhÉãÇ…äiî[Ç≥ÇÍÇΩ
OSTypes ÇÃå¬êîÇéÊìæÇ∑ÇÈDZÇΔÇ™Ç≈Ç´Ç‹Ç∑ÅB
ï‘Ç≥ÇÍÇΩÉnÉìÉhÉãÇ©ÇÁ OSType ÇÇ–ÇΔǬÇ∏ǬéÊÇËèoÇ∑ÅAä»íPÇ»ó·Çà»â∫Ç…é¶ÇµÇ‹Ç∑ÅB
OSErr GetSoundInputSourceOSTypes (long siRefNum) {
OSErr err;
SoundInfoList sourceTypes;
long offset = 0;
short numTypes;
int i;
char sourceType[5];
Handle OSTypes = nil;
err = SPBGetDeviceInfo (siRefNum, siOSTypeInputAvailable, &sourceTypes);
if (err != noErr) {
printf ("\nGot error #%d from siOSTypeInputAvailable\n\n", err);
}
if (err == noErr) {
printf ("\nThe sound input source OSTypes are:\n");
numTypes = sourceTypes.count;
OSTypes = sourceTypes.infoHandle;
for (i = 0; i < numTypes; i++) {
BlockMoveData (&(*OSTypes)[offset], sourceType, 4);
sourceType[4] = 0;
printf (" %s\n", sourceType);
offset += sizeof (OSType);
}
}
if (OSTypes != nil) {
DisposeHandle (OSTypes);
}
return err;
}
ì¸óÕÉ\Å[ÉXÇÃíËêîÇÕ Universal Headers 3.1 à»ç~Ç≈íËã`Ç≥ÇÍǃǢNjÇ∑ÅBåªç›íËã`Ç≥ÇÍǃǢÇÈíËêîÇÕéüÇÃí ÇËÇ≈Ç∑ÅB
/* ì¸óÕÉ\Å[ÉXÉ^ÉCÉv */
enum {
kNoSource = FOUR_CHAR_CODE('none'), /* É\Å[ÉXÇëIëǵǻǢ */
kCDSource = FOUR_CHAR_CODE('cd '), /* ì‡ë† CD ÉvÉåÉCÉÑÅ[ÇÃì¸óÕ */
kExtMicSource = FOUR_CHAR_CODE('emic'), /* äOïîÉ}ÉCÉNÇÃì¸óÕ */
kRCAInSource = FOUR_CHAR_CODE('irca'), /* RCA ÉWÉÉÉbÉNÇÃì¸óÕ */
kTVFMTunerSource = FOUR_CHAR_CODE('tvfm'),
kDAVInSource = FOUR_CHAR_CODE('idav'), /* DAV ÉAÉiÉçÉOÇÃì¸óÕ */
kIntMicSource = FOUR_CHAR_CODE('imic'), /* ì‡ë†É}ÉCÉNÇÃì¸óÕ */
kMediaBaySource = FOUR_CHAR_CODE('mbay'), /* ÉÅÉfÉBÉAÅEÉxÉCÇÃì¸óÕ */
kModemSource = FOUR_CHAR_CODE('modm'), /* ÉÇÉfÉÄÇÃì¸óÕ */
kZoomVideoSource = FOUR_CHAR_CODE('zvpc') /* ÉYÅ[ÉÄÅEÉrÉfÉIÇÃì¸óÕ */
};
siOSTypeInputSource = FOUR_CHAR_CODE('inpt'), /* OSType Ç…ÇÊÇÈì¸óÕÉ\Å[ÉX */
siOSTypeInputAvailable = FOUR_CHAR_CODE('inav'), /* égópâ¬î\Ç»ì¸óÕÉ\Å[ÉX OSTypes ÇÃÉäÉXÉg */
-- Mark Cookson
devsupport@apple.com
[ Technical Q&A's : Graphics & Media : QuickTime : Sound : SND11 ]
|